package test;

/**
 * @author zdl
 * @date 2024/11/5
 *
 * 多态，向下转型
 *
 * 向下转型：必须先向上转型 ，再向下转型
 */
class Fly{
    public void study(){
        System.out.println("学习");
    }
}

class Bird extends Fly{
    @Override
    public void study() {
        System.out.println("小鸟学习飞翔！");
    }
    public void jiao() {
        System.out.println("小鸟会叽叽喳喳的叫！");
    }
}
public class Demo3 {
    public static void main(String[] args) {
        //多态向下转型
        /**
         * 语法格式
         *  父类 父类对象 = new 子类(); // 向上转型
         *  子类  对象 = (子类类型) 父类对象;
         */
        Fly fly = new Bird();
        Bird bird = (Bird) fly;  //向下转型
        bird.jiao();

        /*  执行下列代码会报错  ClassCastException 类转换异常
        *   Fly f = new Fly();
            Bird b= (Bird) f;
        * */

    }
}


